﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;

namespace GeneralLibs
{
    public class GiaoDienKhoanMucClinic
    {
        public static DataTable _DataTable = null;

        private static DataTable InitTable()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Column Name", typeof(string));
            dt.Columns.Add("TenHienThi", typeof(string));
            dt.Columns.Add("DoRong", typeof(int));
            dt.Columns.Add("HienThi", typeof(bool));
            dt.Columns.Add("ThuTuHienThi", typeof(int));
            dt.Columns.Add("BatBuocNhap", typeof(bool));
            dt.Columns.Add("ReadOnly", typeof(bool));
            dt.Columns.Add("TabStop", typeof(bool));

            return dt;
        }

        private static void SetDataTable(string columnName, string TenHienThi, int DoRong, bool HienThi, int ThuTuHienThi, bool BatBuocNhap, bool ReadOnly, bool TabStop)
        {
            try
            {
                DataRow rowAdd = _DataTable.NewRow();

                rowAdd["Column Name"] = columnName;
                rowAdd["TenHienThi"] = TenHienThi;
                rowAdd["TenHienThi"] = TenHienThi;
                rowAdd["DoRong"] = DoRong;
                rowAdd["HienThi"] = HienThi;
                rowAdd["ThuTuHienThi"] = ThuTuHienThi;
                rowAdd["BatBuocNhap"] = BatBuocNhap;
                rowAdd["ReadOnly"] = ReadOnly;
                rowAdd["TabStop"] = TabStop;

                _DataTable.Rows.Add(rowAdd);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static DataView GetGiaoDienPhieuChiDinh()
        {
            try
            {
                int thuTuHienThi = 0;
                bool hienThi = true;
                if (_DataTable == null) _DataTable = InitTable();
                _DataTable.Clear();

                //                                                      Bắt buộc nhập, ReadOnly, TabStop
                SetDataTable("DichVuID", "Dịch vụ", 150, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("GiaBan", "Giá bán", 70, hienThi, thuTuHienThi++, true, false, false);  // Cho sửa giá bán

                ////KCB dùng tổng dưới chân, k cho hiện cột chiết khấu
                //if (!LocalSettings.TenStoreUpper.Contains("KCB"))
                //{
                //    SetDataTable("ChietKhau", "Ck", 40, hienThi, thuTuHienThi++, false, true, true);
                //}

                SetDataTable("ChietKhau", "Ck", 40, hienThi, thuTuHienThi++, false, false, true);
                SetDataTable("ThanhTien", "Thành tiến", 80, hienThi, thuTuHienThi++, true, false, true);

                return _DataTable.DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi khi tạo giao diện phiếu chỉ định: " + ex.Message);
                return _DataTable.DefaultView;
            }
        }
        public static DataView GetGiaoDienGridCanLamSangForHoSo()
        {
            try
            {
                //Chỉ view nên hiển thị rất đơn giản
                int thuTuHienThi = 0;
                bool hienThi = true;
                if (_DataTable == null) _DataTable = InitTable();
                _DataTable.Clear();

                //                                                      Bắt buộc nhập, ReadOnly, TabStop
                SetDataTable("DichVuID", "Dịch vụ", 300, hienThi, thuTuHienThi++, true, true, false);
                //SetDataTable("KetQua", "Kết quả", 200, hienThi, thuTuHienThi++, true, true, false);

                return _DataTable.DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi khi tạo giao diện: " + ex.Message);
                return _DataTable.DefaultView;
            }
        }

        public static DataView GetGiaoDienVatTuTieuHaoTheoDichVu()
        {
            try
            {
                int thuTuHienThi = 0;
                bool hienThi = true;
                if (_DataTable == null) _DataTable = InitTable();
                _DataTable.Clear();

                //                                                      Bắt buộc nhập, ReadOnly, TabStop
                SetDataTable("VatTuHangHoa1ID", "Vật tư", 200, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("SoLuong", "Số lượng", 80, hienThi, thuTuHienThi++, true, false, false);

                return _DataTable.DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi khi tạo giao diện phiếu chỉ định: " + ex.Message);
                return _DataTable.DefaultView;
            }
        }
        public static DataView GetGiaoDienGridKeDonForHoSo()
        {
            try
            {
                int thuTuHienThi = 0;
                bool hienThi = true;
                if (_DataTable == null) _DataTable = InitTable();
                _DataTable.Clear();

                //                                                                      Bắt buộc nhập, ReadOnly, TabStop
                //SetDataTable("VatTuHangHoa1ID", "Vật tư", 200, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("TenThuoc", "Tên thuốc", 200, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("DonViTinh", "ĐVT", 60, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("SoLuong", "Số lượng", 60, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("HuongDanSuDung", "Hướng dẫn sử dụng", 200, hienThi, thuTuHienThi++, true, false, false);

                return _DataTable.DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi khi tạo giao diện: " + ex.Message);
                return _DataTable.DefaultView;
            }
        }

        public static DataView GetGiaoDienThongSoCuaDichVu()
        {
            try
            {
                int thuTuHienThi = 0;
                bool hienThi = true;
                if (_DataTable == null) _DataTable = InitTable();
                _DataTable.Clear();

                //                                                      Bắt buộc nhập, ReadOnly, TabStop
                SetDataTable("Ma", "Mã", 100, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("Ten", "Tên thông số", 200, hienThi, thuTuHienThi++, true, false, false);
                SetDataTable("ChiSoMacDinh", "Chỉ số thông thường", 200, hienThi, thuTuHienThi++, false, false, false);
                SetDataTable("MoTa", "Kết luận mặc định (khi tạo phiếu Cận lâm sàng)", 400, hienThi, thuTuHienThi++, false, false, false);

                return _DataTable.DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi khi tạo giao diện phiếu chỉ định: " + ex.Message);
                return _DataTable.DefaultView;
            }
        }
    }
}
